這篇的來源,源自於bou.io
他在他的Blog有提到,這個東西算是未公開的官方用法(就是官方沒有寫可以這樣用,但是這樣寫又會自動被呼叫到XD)
直接提一下 KVC Custom Collection Operator 的格式長怎樣
- (id) _<operator>ForKeyPath:(NSString*)keyPath
例如,我們定義一個operator 為 times (times 我的意思是相乘)
所以,依照上面的格式來定義我們的Method Name 就是:
- (id) _timesForKeyPath:(NSString*)keyPath
他的呼叫方式如下
[array valueForKeyPath:@"@times.1000"]
這邊挺好玩的地方是當你呼叫上面的Code
他會自動把你的keyPath 自動拆成兩個部分 @times
& 1000
@times
會被拿去搜尋方法,最後找到了你定義的_timesForKeyPath:
剩下的 1000
會被當作 _timesForKeyPath:
的參數傳入
最後用 Code 說明一切!!
1 |
|